package com.eastfair.config.api;

import com.eastfair.config.dto.FormFieldCheckDTO;
import com.eastfair.config.dto.FormFieldDTO;
import com.eastfair.config.entity.FormField;
import com.eastfair.config.vo.FormFieldVO;
import com.eastfair.core.base.R;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;


/**
 * feign接口
 */
@FeignClient(value = "config/formField")
public interface FormFieldServiceFeign {

    /**
     * 根据条件查询表单
     *
     * @param formFieldDTO 表单过滤条件
     * @return 表单列表
     */
    @PostMapping("/getBySubjectType")
    R<List<FormFieldVO>> getBySubjectType(@RequestBody FormFieldDTO formFieldDTO);

    /**
     * 根据条件查询表单（内部调用）
     *
     * @param formFieldDTO 表单过滤条件
     * @return 表单列表
     */
    @PostMapping("/getByShowTypeInside")
    R<List<FormField>> getByShowTypeInside(@RequestBody FormFieldDTO formFieldDTO);

    /**
     * 展商展品观众表单校验（内部调用）
     * 需指定展会id
     *
     * @param formFieldCheckDTO 表单列表校验类
     * @return 校验结果
     */
    @ApiOperation(value = "根据表单类型获取表单", notes = "根据表单类型获取表单")
    @PostMapping("/checkFormFieldInfo")
    R<Boolean> checkFormFieldInfo(@RequestBody FormFieldCheckDTO formFieldCheckDTO);

}